package com.ztgf.sms.models.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.ztgf.common.constant.Result;
import com.ztgf.sms.models.bo.*;
import com.ztgf.sms.models.dto.sms.SmsInfoDTO;
import com.ztgf.sms.models.vo.SmsInfoVO;
import com.ztgf.sys.models.bo.SysNoticeQueryBO;

/**
 * 短信服务
 *
 * @author zhanghualang
 * @Date 2020-05-18
 */
public interface ISmsInfoService extends IService<SmsInfoDTO> {
    void save(SmsInfoSaveBO smsInfoSaveBO) throws Exception;

    void saveCaptcha(SmsInfoSaveCaptchaBO smsInfoSaveCaptchaBO) throws Exception;

    void sendCaptcha(SmsInfoSaveCaptchaBO smsInfoSaveCaptchaBO) throws Exception;

    boolean add(SmsInfoSaveBO smsInfoSaveBO);

    boolean getCaptcha(SmsInfoBO smsInfoBO);

    void saveBatch(SmsInfoBatchBO bo,String sessionId,String source) throws Exception;

    void dcSend(SmsInfoSaveBO smsInfoSaveBO); //对接创信

    void xwSend(SmsInfoSaveBO smsInfoSaveBO) throws Exception; //对接玄武

    void saveALCaptcha(SmsInfoSaveCaptchaBO smsInfoSaveCaptchaBO) throws Exception;

    Page<SmsInfoVO> queryPageList(SmsInfoQueryBO bo);

    void savePassAudit(SmsInfoSaveBO bo) throws Exception;//通过验证

    void saveUnPassAudit(SmsInfoSaveBO bo) throws Exception;//不通过验证

    void savePassOpenAudit(SmsInfoSaveBO bo) throws Exception;//通过验证

    void saveUnPassOpenAudit(SmsInfoSaveBO bo) throws Exception;//不通过验证

    void saveAfterSale(SmsInfoSaveBO bo) throws Exception;//售后

    void saveQualificationExpired(SmsInfoSaveBO bo) throws Exception;//资质过期

    void saveQualificationChange(SmsInfoSaveBO bo) throws Exception;//资质变更

    void saveOrderStatus(SmsInfoSaveBO bo) throws Exception;//订单状态变更

    void saveThreshold(SmsInfoSaveBO bo) throws Exception;//库存低于阙值

    void saveEarnestMoney(SmsInfoSaveBO bo) throws Exception;//扣除保证金

    void saveAnnualFee(SmsInfoSaveBO bo) throws Exception;//待缴纳年费

    void saveFreeze(SmsInfoSaveBO bo) throws Exception;//冻结

    void saveIM(SmsInfoSaveBO bo) throws Exception;//IM

    Result saveOtherDc(SmsInfoOtherSaveBO smsInfoSaveBO); //其他平台发送普通短信

    Result getAisleInfo() throws Exception; //获取通道资费信息

    Page<SmsInfoDTO> queryAllPageList(SmsInfoQueryBO bo);

    void saveBatchByType(SmsInfoBatchBO bo, String sessionId, String toString);//批量发送短信

    Page<SmsInfoDTO> queryPageListByNoticeId(SysNoticeQueryBO sysNoticeQueryBO);//通过发布分页查询短信日志

    void sendMessageByPurchase(SmsInfoSaveBO smsInfoSaveBO) throws Exception;

    Result saveOtherPass(SmsInfoOtherSaveBO bo);//其他平台发送普通短信

    public String smsSend(String mobile);//发送短信到SSO
}
